package com.zbkj.service.service.project;

import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.zbkj.common.model.project.ProjectInfo;
import com.zbkj.common.vo.project.ProjectModifyConditionVo;
import com.zbkj.common.vo.project.ProjectQueryVo;

import java.util.Date;
import java.util.List;

/**
 * <p>
 * 项目信息表 服务类
 * </p>
 *
 * @author 
 * @since 2024-07-06
 */
public interface ProjectInfoService extends IService<ProjectInfo> {

    PageInfo<ProjectInfo> projectList(ProjectQueryVo queryVo, int page, int limit);
    Integer projectNameRepeatCheck(Long userId, String projectName, Long id);

    boolean updateProject(ProjectInfo projectInfo, ProjectModifyConditionVo conditionVo);

    Integer getProjectStatusCount(List<Integer> statusList, Integer remindFlag, Long userId);

    boolean projectLockUpdate(Long projectId, int lockState);

    /**
     * 撤回操作-项目属性设置为初始化状态
     * @param projectInfo
     */
    void withdrawnAttrInit(ProjectInfo projectInfo);

    /**
     * 重新提交-属性初始化
     * @param projectInfo
     */
    void projectRestInit(ProjectInfo projectInfo);

    Integer getProjectUserCount(Long userId);

    List<Long> getHandleDemoPrjectIds(List<String> fileNameList, Date delayDate);

    void reportApplyStatusUpdate(Long projectId, Integer applyStatus);
}
